The data capacities and data-access speeds of mass-storage devices have increased phenomenally during the past 50 years, at rates even greater than the often-discussed rate of increase in processor speeds and functionalities. Large, rigid, removable disk platters used in many computers during the 1970's stored less than a megabyte of data, while relatively low-cost personal computers can now be purchased with small, terabyte drives. In early computer systems, mass-storage devices were generally directly interconnected with the computer processor, electronic memory, and other computer components. More recently, large, highly-available and fault-tolerant disk arrays have been developed both as peripheral mass-storage devices directly linked to individual computer systems as well as for use as more autonomous, remote mass-storage devices accessible to many different computer systems through communications networks. Array clusters, an even more recent development, provide multiple disk-array controllers that access commonly-controlled mass-storage devices through a communications medium.
In general, disk arrays and disk-array clusters provide a logical-unit-based interface to host computers. The data-storage space provided by the mass-storage-devices within a disk array, or accessible to the disk-array controllers of an array cluster, is partitioned into multiple logical units by the disk-array controller or array controllers associated with an array cluster. Logical units provide a useful level of indirection between host-computer-specified data-block addresses and logical-block-based disk addresses by which disk-array controllers and array-cluster-associated arrays access the mass-storage devices under their control. The snapshot operation is one example of the operations provided to host computers by disk arrays. Although snapshots may be undertaken on various different data granularities, snapshot operations will be discussed with reference to logical units in this and following sections. A snapshot operation allows a host computer to direct an array controller to make a nearly instantaneous copy of a particular logical unit. Following the snapshot operation, the original logical unit and the snapshot-logical-unit copy can be independently accessed. Although snapshot operations are currently supported, in array clusters, in the same fashion as snapshot operations are supported in individual disk arrays, designers and developers of disk-array clusters, as well as disk-array-cluster vendors and manufacturers, have recognized that additional development of snapshot operations carried out by disk-array clusters may be warranted.